Maeiee Weekly No.3
文章
- 《Flutter 动态化热更新的思考与实践(二)----Dart 代码转换AST》
- 如何将 Dart 代码转换为 AST
- Dart Analyzer
- 官方提供库,Dart 源码转 AST
- 衍生工具:
- dartfmt 格式化
- dartdoc 文档
- dart analysis server 语法预分析服务
- parseFile:传入 Dart 文件路径,返回解析结果 ParseStringResult
- CompilationUnit:
- 未处理的编译单元
- AST 语法树根节点
- Visitor 模式访问语法树:
- 基类 AstVisitor
- 范型:AstNode 转成树节点的数据结构,如 Map
- SimpleAstVisitor 100 多个抽象方法
- visitVariableDeclaration:变量声明
- visitVariableDeclarationList:变量声明
- visitSimpleIdentifier:标识符定义
- visitBinaryExpression:运算表达式结构
- visitIntegerLiteral:数值定义
- 基类 AstVisitor
- AstNode:Analyzer 定义的 Ast 节点
- node.apply:传入 Visitor 递归解析
- 《顶级独立游戏开发者谈独立游戏在当前环境下的生存机会》
- 生态饱和
- 手游市场脱颖而出越来越难
- 数字生态人满为患
- 市场包容性与鼓励
- AppStore 上线独立游戏主题页
- 2人游戏开发团队与巨头享有同样的市场曝光机会
- AppStore、GooglePlay 两个巨大的市场
- 厂商鼓励独立游戏(谷歌、任天堂、苹果)
- 看到了这个市场的重要性
- 团队特点:规模小、营销开支不足、试验期长
- 付费:
- 让游戏必须付费的好点子
- 完全免费精品游戏,投入产出比太低
- 与巨头竞争
- 优势
- 更能发挥创造力
- 玩家厌倦重复相同的游戏机制
- 运行成本低,更加灵活
- 与巨头同样的平台,上传市场,10亿潜在用户
- 更能发挥创造力
- 劣势
- 同类竞争注定要输
- 营销资源少,推广劣势
- 研发资源少
- 优势
- 艺术性与品味
- 独立游戏的创新和创造力
- 陶冶玩家品味
- 改变对手游印象
- 生态饱和
- 《PostmarketOS》
- 手机和其他移动设备上的真正 Linux 发行版
- 手机的问题
- 买回来很快官方就不维护了
- Android、iOS 都是有高墙的花园
- PostmarketOS
- 在手机上运行 Linux 发行版
- 持续维护,注重安全、隐私
- 架构
- 基于 Alpine Linux
- 提及小于 10MB
- 构建脚手架工具 pmbootstrap
- 通用的包管理
- 完全不使用 Android 构建系统
- 内核
- 尽可能的适配主线 Linux 内核
- 无法适配主线的采用下游内核
- 图形界面
- 支持多种界面:Plasma Mobile、Phosh、Sxmo
- 每种设备一个镜像
- 最近流行的在 iPhone、iPad 上运行 Linux,就是基于 PostmarketOS 来运行
- 《React Explained for Product Managers》
- 关于前端组件化你需要知道的所有事情
- 用 React 构建程序就像组装乐高汽车玩具
- React 是开发 Web 应用的最流行库
- 术语:
- UI:系统与用户间的交互接口
- UE:用户在与应用交互过程中的体验
- DOM:浏览器中可视化元素的数据结构
- React 分为 3 层:
- 组件 & Hooks
- 组件:
- 组件就像乐高积木
- 应用最小粒度
- 面向组件思考(Component-oriented-thinking)
- 复杂组件由简单组件组合而来
- Hooks:
- Hooks 是功能块
- React 中用于丰富组件功能的方式
- 将业务逻辑通过 Hooks 组装,并与组件相关联
- 组件:
- 核心算法
- Virtual DOM
- 位于组件与浏览器之间的逻辑层
- Rendering
- 当有新的变化或数据可以让用户看到时
- React 首先计算哪些组件需要更新
- 然后用HTML组成用户界面并发送给浏览器
- Reconciliation
- 比较用户界面或数据更新所引发的变化
- 计算如何在浏览器中渲染 UI 更新
- 增量渲染,效率和性能更高,体验更好
- Scheduling
- React 有能力暂停和恢复组件的更新
- 非紧急的更新给紧急更新让步
- 暂停慢速更新,完成紧急更新并渲染 UI 变化,然后再恢复慢速更新,直到完成
- Virtual DOM
- 浏览器
- 不仅是React渲染的接收端,也是用户交互的起点
- 事件发生时,会触发 React 组件的一系列变化
- React 会接受这些变化,并使用核心算法找出 Diff,安排更新,然后渲染用户界面
- 组件 & Hooks
- React 生态
- 组件库
- 大量组件库供复用
- MUI、Visx、Framer Motion
- Web 应用框架
- 测试库
- 随着应用变得复杂,可以将测试纳入开发周期中获益,以保持敏捷性并向用户提供高质量的产品。
- 流行的测试库:React Testing Library、Enzyme
- 通用测试库:Jest、Cypress、Playwright
- 组件库
- 《InfoQ 2022 年趋势报告:DevOps 与云计算篇》
- 可观测:
- 企业充分了解系统数据健康状况
- 沿着管道自动监控数据
- 促进数据问题故障排除和预防
- Serverless:
- 无服务器函数、无服务器数据库
- 为变化而设计(design for change)
- 现代云开发:动态、事件驱动、面向微服务
- 边缘计算:
- 在靠近终端用户的地方提供数据处理、分析和存储
- 云供应商将他们的基础设施和服务扩展到了更多的地方
- 平台工程:
- 云原生工程师逐步成为“全周期开发者”,他们需要编码、交付和运行应用程序。
- 特性左移”,如安全性、可靠性、可扩展性等
- 平台工程师的角色正在各种规模的组织中兴起。
- 云无关的无服务器平台:OpenFaaS、OpenFunction、Knative、Kubeless
- 书籍:《团队拓扑学》
- 可观测:
- 《一些Android开发死局》
- 作者总结了一些问题挺有价值:
- Android 国内保活
- 反抓包
- 个人开发者海外收款
- 公司注册
- 作者总结了一些问题挺有价值: